#include <iostream>
#include <functional>

template<typename Func, typename... Args>
auto wrap_and_call(Func func, Args&&... args) {
    // 在调用前可以添加额外的功能，比如日志记录、参数检查等
    return func(std::forward<Args>(args)...);
}

int main() {
    auto result = wrap_and_call([](int x, double y) { return x * y; }, 3, 4.5);
    std::cout << "Result of function call: " << result << std::endl;
    return 0;
}